<?php

    class ldap
    {
        var $conexion_str;
        var $bind_str;
        var $search_str;
        var $conexion_ldap;
        var $bind_ldap;
        var $search_ldap;
        
        function ldap($nombre)
        {
            $this->conexion_str="ldap://ldap.usb.ve";
            $this->bind_str="uid=$nombre,ou=People,dc=usb,dc=ve";
            $this->search_str1="ou=Group,dc=usb,dc=ve";
            $this->search_str2="memberUid=$nombre";
        }

        function connect()
        {
            $this->conexion_ldap=ldap_connect($this->conexion_str) or die("Error: No se puede establecer conexion con el ldap");
        }

        function bind($clave)
        {
            $this->bind_ldap=ldap_bind($this->conexion_ldap,$this->bind_str,$clave);
        }

        function search()
        {
            $this->search_ldap=ldap_search($this->conexion_ldap, $this->search_str1, $this->search_str2);
        }

        function usuarios($clave)
        {
            $this->connect();
            $this->bind($clave);
            if ($this->bind_ldap) {
                $this->search();
                return ldap_get_entries($this->conexion_ldap, $this->search_ldap);
            }
            else {
                return null;
            }
        }

        function close()
        {
            ldap_close($this->conexion_ldap);
        }
    }
?>